const user = require("../sql/user");
const jwt = require("jsonwebtoken");
const path = require("path");
const fs = require("fs");

module.exports = (req, res)=>{
    // 接收前端发送的token，用于验证登录信息
    const token = req.body.token;
    // 接收前端发送的文件信息，用于改名和存储
    const file = req.files[0];
    // 解析token
    jwt.verify(token, "有志者事竟成", (tokenErr, tokenData)=>{
        if(tokenErr){
            res.send(JSON.stringify({
                code:0,
                msg:"登录失效",
                data:null
            }))
        }else{
            
            // 源文件名：前端上传时的文件名：avatar1.jpg
            
            // 老文件名：后端默认存储的文件名：xxx/hagshgtbehwakuhb
            const oldName = path.join(__dirname, "..", file.path);
            // 新文件名：后端默认存储的文件名+前端上传时的文件名：xxx/hagshgtbehwakuhb-avatar1.jpg
            const newName = oldName + "-" + file.originalname;
            
            // 根据文件信息，获取改名
            fs.rename(oldName, newName, err=>{
                if(!err){
                    // 服务器静态资源文件名：http://localhost:3000/hagshgtbehwakuhb-avatar1.jpg
                    const serverPath = "http://localhost:3000" + newName.split("upload")[1];
                    // 更新数据库信息（修改用户头像信息）
                    user.updateOne({
                        userId: tokenData.userId
                    }, {
                        avatar: serverPath
                    }, ()=>{
                        // 路由重定向回用户信息页面
                        res.redirect("/user.html");
                    })
                }
            })
        }
    })
}